package main

import (
	"fmt"
	"sync"
)

func main() {
	var wg sync.WaitGroup
	wg.Add(3)
	go func() {
		fmt.Println("Go1!")
		wg.Done()
	}()
	go func() {
		fmt.Println("Go2!")
		wg.Done()
	}()
	go func() {
		fmt.Println("Go3!")
		wg.Done()
	}()
	wg.Wait()

	//runtime.Gosched函数的作用是让当前正在运行的Goroutine（这里是运行main函数的那个Goroutine）暂时“休息”一下，而让Go运行时系统转去运行其它的Goroutine（这里是与go fmt.Println("Go!")对应并会封装fmt.Println("Go!")的那个Goroutine）
	//go fmt.Println("Go!")
	//runtime.Gosched()
}